package com.doubi.util;
import com.cloopen.rest.sdk.CCPRestSmsSDK;

import java.util.HashMap;
import java.util.Random;
import java.util.Set;
/**
 * 短信工具类
 */
public class SMSMessage {
    /**
     * 发送短信验证码的方法
     * @param phone 根据用户输入的手机号码
     */
    public String sendSMS(String phone){
        HashMap<String, Object> result = null;
        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
        restAPI.init("app.cloopen.com", "8883");
        // 初始化服务器地址和端口，生产环境配置成app.cloopen.com，端口是8883.
        restAPI.setAccount("2c94811c8cd4da0a018e12a1d9de308e", "4900714fb5fd40d98335afd2d1bdbb89");
        // 初始化主账号名称和主账号令牌，登陆云通讯网站后，可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
        restAPI.setAppId("2c94811c8cd4da0a018e12a1db483095");
        // 请使用管理控制台中已创建应用的APPID。
        //获取验证码
        String code=code();
        result = restAPI.sendTemplateSMS(phone,"1" ,new String[]{code,"1"});
        System.out.println("SDKTestGetSubAccounts result=" + result);
        if("000000".equals(result.get("statusCode"))){
            //正常返回输出data包体信息（map）
            HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
            Set<String> keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
            return code;//返回验证码
        }else{
            //异常返回输出错误码和错误信息
            System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
            return "false";//说明短信发送失败
        }
    }
    //产生随机四位验证码
    private   String code(){
        Random random=new Random();
        return (random.nextInt(9000)+1000)+"";
    }

}
